Hitherto, a communication method between a controller and a servo drive differed from one manufacturer to another. Recently, on the other hand, there is a mounting demand for “open products” also in the field of controllers for factory automation. As open controllers are spreading widely, designing of a user's original specification and utilization of general-purpose personal computer resources are realized, and connection between products of different manufacturers is easier, and the convenience for users is enhanced.
As an open interface between controller and servo drive, it is being considered to use the IEEE1394 or USB. In particular, it is widely attempted to apply the IEEE1394, the network standard for home automation, in the field of factory automation. Features of the IEEE1394 include the following.
(1) High speed data transmission of more than 100 Mbytes/sec is possible.
(2) Isochronous transmission system is possible, and synchronous communication having a fast communication period is realized.
(3) Connection or disconnection is possible without turning off the power source (live wire detaching, which is called “Plug and Play” or “Hot Plug”).
(4) Up to 63 devices can be connected. Further, by mass production effects, it is expected to manufacture the interface section at lower cost. In addition, since the interface substrate is smaller than the Ethernet, it is easier to assemble into various devices.
FIG. 23 is a diagram showing a communication layer structure of the IEEE1394. In FIG. 23, the communication structure of the IEEE1394 comprises three layers, physical layer 101, link layer 102, and transaction layer 103, and also a serial bus management 104.
The physical layer 101 is a layer for processing signals between transmitted and received electric signals and the link layer. The physical layer 101 designates the mechanical interface such as connector and cable, encodes and decodes for analog and digital conversion of logic signals used in the link layer 102, designates the electrical interface such as signal level for determining the electrical level of communication signals, arbitrates for determining the communication code, re-synchronizes the communication lock, and detects initialization of the bus.
The link layer 102 is a layer for processing signals between the physical layer 101 and transaction layer 103. The link layer 102 allocates addresses, checks data, transmits and receives packets for dividing data into frames, and controls the cycle. Meanwhile, isochronous data is processed without passing through the transaction layer.
The transaction layer 103 is a layer for processing signals between the host application and the link layer 102. The transaction layer 103 reads and writes data. That is, the transaction layer 103, utilizing the processing of the link layer 102, transmits the request packet and receives the response packet, thereby processing one communication to the designated node and address. To the contrary, it also receives the request packet and transmits the response packet, thereby processing communication from another node to its own node.
The serial bus management 104 controls all three layers. In a typical communication layer structure, the physical layer 101 and link layer 102 are composed of hardware, and the transaction layer 103 and serial bus management 104 are composed of firmware.
Asynchronous communication according to IEEE1394 is used in asynchronous data communication. In asynchronous communication, secure transmission of a packet to the partner node is guaranteed, but the transmission delay time is not assured. The transmission node transmits the header information and actual data to the node at the destination, and the reception node returns an acknowledge packet to notify that the packet has been received.
Isochronous communication according to IEEE1394 is a kind of synchronous communication, and is suited to transmission of moving images and sound. In isochronous communication, it is guaranteed that data transmission is completed every 125 μsec. The transmission node of isochronous packet is not to transmit to a specific node, but to transmit to the entire bus by using channel numbers 0 to 63, and the reception node does not return an acknowledge packet. The header of the isochronous packet can identify the packet by using a 6-bit channel number, and therefore it is much simpler than the header of an asynchronous packet which uses a 64-bit address space, and the header information can be saved. The reception node selects and takes up the isochronous packet of the channel number desired to be received in the node. When the transmission node and reception node transmit and receive data using the same channel number, isochronous communication is established.
As shown in FIG. 24, isochronous communication and asynchronous communication can coexist. Of 125 μsec of one cycle, a maximum of 100 μsec can be used for isochronous communication, and the remainder is used for asynchronous communication. The maximum value of the data payload of an asynchronous packet is determined in order to avoid failure in guarantee of isochronous communication due to too long a transmission time of asynchronous data.
An isochronous transmission time zone is a band for isochronous communication, and an asynchronous transmission time zone is a band for asynchronous communication. As shown in FIG. 24, isochronous communication always starts ahead of asynchronous communication, so that isochronous communication can be guaranteed. In one cycle, after a CycleStart packet DS is transmitted, in FIG. 24, data packet D1 of channel CH1 and data packet D2 of channel CH3 are transmitted in the isochronous transmission time zone. Later, in the asynchronous transmission time zone, data packets D3, D4 are transmitted, but acknowledge packet DA is returned to these data packets D3, D4.
Of each node of IEEE1394, the link layer mounting a node having isochronous capability is provided with CYCLE—TIME register for synchronizing in clock with the bus, and has a timer for updating the content of this CYCLE—TIME register. This timer is called the cycle timer. The time of the cycle timer is set by CycleStart packet. In the IEEE1394, the node for transmitting the CycleStart packet is called the cycle master, and other nodes than this cycle master are called cycle slaves.
That is, as shown in FIG. 25 and FIG. 26, by putting the time of cycle timers 112, 132 possessed by cycle masters 111, 131 on the CycleStart packet, and transmitting to the nodes (cycle slaves) 121, 141, 151, the time of the cycle timers 122, 142, 152 possessed by the nodes 121, 141, 151 is set in the same time as the cycle timers 112, 132 possessed by the cycle masters 111, 131.
Real-time data transmission using the IEEE1394 is transmitted by isochronous packet, but the data is synchronized at the transmission side and reception side by reference to the cycle timer. As a method of synchronization, for example, a time stamp is put in the isochronous packet.
Actually, however, there is a delay in transmission, and the cycle timers of the transmission side node and reception side node are not matched in time precisely. That is, at the moment when the time of the cycle timer is set by reception of the CycleStart packet at the response node, the time of the cycle timer of the request node is already advanced by the portion of the time gap, and due to transmission delay, the transmission side node and reception side node cannot be synchronized exactly.
In particular, considering the control system using the network connected by the IEEE1394, the controller and servo drive are synchronized by reference to these cycle timers. In the control system, however, high speed and high precision are required, especially high speed and high precision in synchronous control, and such timer delay between the controller and servo drive may cause serious effects on high speed and high precision of control, in particular, high speed and high speed of synchronous control.